package com.fg.cloud.manager.mapper.report;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.fg.cloud.manager.entry.order.vo.AreaOrderReportVo;
import com.fg.cloud.manager.entry.order.vo.OrderDetailReportVo;
import com.fg.cloud.manager.entry.report.AmountEntity;
import com.fg.cloud.manager.mapper.BaseMapper;

public interface OrderReportMapper extends BaseMapper {

	/**
	 * Description:统计订单销量报表
	 * @param facId
	 * @return
	 * @author dingjiang
	 * @date 2017年9月8日上午11:42:40
	 */
	List<OrderDetailReportVo> findReport(@Param("condition") Map<String, Object> condition);
	
	/**
	 * Description:查询指定经销商区域的总销量
	 * @param condition
	 * @return
	 * @author dingjiang
	 * @date 2017年9月11日上午10:49:03
	 */
	BigDecimal findArea(@Param("condition") Map<String, Object> condition);
	
	/**
	 * Description:统计区域订单下单次数与金额
	 * @param condition
	 * @param areaNumberSort
	 * @param facId
	 * @return
	 * @author dingjiang
	 * @date 2017年9月27日上午10:27:23
	 */
	List<AreaOrderReportVo> orderQuery(@Param("condition") Map<String, Object> condition, 
			@Param("length")Integer length, @Param("number")String number);
	
	List<AreaOrderReportVo> supplementOrderQuery(@Param("condition") Map<String, Object> condition,
			@Param("length")Integer length, @Param("number")String number);
	
	/**
	 * Description:统计区域退货单退货次数与退货金额
	 * @param condition
	 * @param length
	 * @param areaNumberSort
	 * @return
	 * @author dingjiang
	 * @date 2017年9月27日上午10:38:15
	 */
	List<AreaOrderReportVo> returnOrderQuery(@Param("condition") Map<String, Object> condition, 
			@Param("length")Integer length, @Param("number")String areaNumberSort);
	
	List<AreaOrderReportVo> supplementReturnOrderQuery(
			@Param("condition") Map<String, Object> condition, @Param("length")Integer length, 
			@Param("number")String areaNumberSort);
	
	/**
	 * Description:分时段查询订单金额
	 * @param entity
	 * @return
	 * @author around
	 * @date 2017年9月8日下午3:58:50
	 */
	List<AmountEntity> findSaleByOrder(AmountEntity entity);
	
	List<AmountEntity> findSaleByReturnOrder(AmountEntity entity);
	
}
